package com.day08;

public class StaticDemo {
    public static void main(String[] args) {
        Student student = new Student("zhangsan", 20);
        student.print();  // 姓名：zhangsan	年龄：20	班级：null

        // 推荐 通过"类.类变量"访问类变量
        Student.classname = "信息1701";
        student.print();  // 姓名：zhangsan	年龄：20	班级：信息1701

        // 推荐 通过"类.类方法"访问类方法
        Student.showclass();
    }
}

class Student {
    // classname是类变量/静态变量。该类的每个对象都共享该类变量的值。
    public static String classname;
    private String name;
    private int age;

    static {
        // 给类变量赋值
        classname = "J信息";
    }

    public Student() {
    }

    // 注意：构造器最好不要初始化类变量
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void print() {
        // 由于classname是该类全局共享的，所以可以不用加this
        System.out.println("姓名：" + this.name + "\t年龄：" + this.age + "\t班级：" + classname);
    }

    // 类方法
    // 注意：类方法中不能使用this关键字
    public static void showclass() {
        System.out.println("班级：" + classname);
    }
}